// 引入reqeust
import request from '@/utils/request'
// 引入类型
import type {SkuModel,SkuListModel,SkuPageListParamsModel } from './model/skuModel'
// 定义枚举类型的接口地址
enum Api { 
  CancelSale = '/admin/product/cancelSale', // 下架
  OnSale = '/admin/product/onSale', // 上架
  DeleteSkuById = '/admin/product/deleteSku', // 删除sku
  GetSkuInfoListBySpuId = '/admin/product/findBySpuId', // 根据spu的id查找sku对象的列表数据地址
  GetSkuInfoBySkuId = '/admin/product/getSkuById', // 根据sku的id获取sku对象的地址
  GetSkuInfoListByKeyword = '/admin/product/inner/findSkuInfoByKeyword', // 根据关键字获取sku列表数据的地址
  GetSkuInfoListBySkuIds = '/admin/product/inner/findSkuInfoBySkuIdList', // 根据sku的id数组获取sku列表数据地址
  GetSkuInfoList = '/admin/product/list', // 根据页码和条数获取sku列表数据的地址
  AddSkuInfo = '/admin/product/saveSkuInfo', // 添加
  UpdateSkuInfo='/admin/product/updateSkuInfo' // 修改
}

// 下架
export const cancelSaleApi=(skuId:number)=>request.get<any,null>(Api.CancelSale+`/${skuId}`)
// 上架
export const onSaleApi=(skuId:number)=>request.get<any,null>(Api.OnSale+`/${skuId}`)
// 根据sku的id删除sku对象
export const deleteSkuByIdApi=(skuId:number)=>request.delete<any,null>(Api.DeleteSkuById+`/${skuId}`)
// 根据spu的id获取对应的sku对象列表数据
export const getSkuInfoListBySpuIdApi=(spuId:number)=>request.get<any,SkuListModel>(Api.GetSkuInfoListBySpuId+`/${spuId}`)
// 根据sku的id获取sku对象数据
export const getSkuInfoBySkuIdApi=(skuId:number)=>request.get<any,SkuModel>(Api.GetSkuInfoBySkuId+`/${skuId}`)
// 根据关键字获取sku列表数据
export const getSkuInfoListByKeywordApi=(keyword:string)=>request.get<any,SkuListModel>(Api.GetSkuInfoListByKeyword+`/${keyword}`)
// 根据sku的id数组获取sku列表数据
export const getSkuInfoListBySkuIdsApi = (ids: number[]) => request.post<any, SkuListModel>(Api.GetSkuInfoListBySkuIds, ids)
// 根据页码和条数获取sku列表数据
export const getSkuInfoListApi=(page:number,limit:number)=>request.get<any,SkuPageListParamsModel>(Api.GetSkuInfoList+`/${page}/${limit}`)
// 添加sku对象
export const addSkuInfoApi=(skuInfo:SkuModel)=>request.post<any,null>(Api.AddSkuInfo,skuInfo)
// 修改sku对象
export const updateSkuInfoApi=(skuInfo:SkuModel)=>request.post<any,null>(Api.UpdateSkuInfo,skuInfo)